C语言 简单题~~~速度~~`!`

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:43:35
题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
void num(int m,int k,int xx[])
{int i,j,s=0;
for(i=m+1;k>0;i++)
{for(j=2;j<i;j++)
if(i%j==0) break; /*注:素数为只能被自己和1整除的数.如果i%j等于0,说明i不是素数,跳出本层循环*/
if(i==j)*********
{xx[s++]=i;k--;}
} }

*****那里i怎么可能等于j?前面都写了j<i??

如果循环到j==i-1,还不能满足i%j==0的条件,这时j就还要执行一次j++.
所以j==i才说明没有满足i%j==0的条件

for(j=2;j<i;j++)---只有循环到j==i的时候循环才会结束.如果j<i,则满足循环条件,继续循环.明白?

if(i%j==0) break; 这里有个分号,应该是属于for语句的吧,而下面的if语句应该是跟for语句并列的,所以是i==j咯